//api.js (在src文件下自定义一个api.js)
import axios from "axios"

//创建一个axios对象
//const 创建一个只读文件
const instance = axios.create({
    baseURL: 'http://127.0.0.1:8000/',
    //请求超时
    timeout: 5000
})

//请求拦截
//所有的网络请求都会先走这个方法、
instance.interceptors.request.use(
    function (config) {
        // console.group('全局请求拦截')
        // console.log(config)
        // console.groupEnd();
        //获取token
        const token = localStorage.getItem('token')
        if (token) {
            config.headers.Authorization = "JWT " + token
        }

        return config
    },
    function (err) {
        return Promise.reject(err)
    }
);


//响应拦截
//所有的网络请求返回数据之后都会先执行此方法
instance.interceptors.response.use(
    function (response) {
        // console.group('全局响应拦截')
        // console.log(response)
        // console.groupEnd();  //这是一种格式
        return response
    },
    //如果失败
    function (err) {
        //存在请求失败
        if (err.response) {
            console.log(err.response)
            //请求失败状态码 == 500
            if (err.response.status == 500) {
                //跳转到首页
                window.location.href = 'http://127.0.0.1:8080/'
            }
        }
        return Promise.reject(err)

    }
);




// p指给Register 传递的参数
// 一个文件里可以有多个 exprot  

// 注册
export const Register = p => { return instance.post('reg/', p) }
// 获取手机验证码
export const code = p => { return instance.get('reg/', p) }
// 登录
export const Login = p => { return instance.post('login/', p) }
// 获取邮箱验证码
export const email_code = p => { return instance.get('update_pass/', p) }
// 密码找回
export const update_pass = p => { return instance.post('update_pass/', p) }
// 获取待审核的用户
export const get_user = p => { return instance.get('get_user/', p) }
// 审核通过
export const pass = p => { return instance.post('get_user/', p) }
// 获取用户信息
export const userinfo = p => { return instance.get('usercontrol/', p) }
// 修改用户权限
export const update_type = p => { return instance.put('usercontrol/', p) }
// 存档
export const del_user = p => { return instance.delete('usercontrol/', p) }
// 获取所有权限
export const permission = p => { return instance.get('permission/', p) }
// 获取当前用户所在公司信息
export const company_info = p => { return instance.post('permission/', p) }
// 展示所有货物类型
export const cargotype = p => { return instance.get('cargotype/', p) }
// 添加货物类型
export const add_cargotype = p => { return instance.post('cargotype/', p) }
// 修改货物类型
export const put_cargotype = p => { return instance.put('cargotype/', p) }
// 删除货物类型
export const del_cargotype = p => { return instance.delete('cargotype/', p) }
// 展示标签
export const tags = p => { return instance.get('tags/', p) }
// 添加标签
export const add_tags = p => { return instance.post('tags/', p) }
// 修改标签
export const put_tags = p => { return instance.put('tags/', p) }
// 删除标签
export const del_tags = p => { return instance.delete('tags/', p) }
// 展示客户信息
export const client = p => { return instance.get('client/', p) }
// 添加客户
export const add_client = p => { return instance.post('client/', p) }
// 编辑客户
export const put_client = p => { return instance.put('client/', p) }
// 展示运单
export const order = p => { return instance.get('order/', p) }
// 添加运单
export const add_order = p => { return instance.post('order/', p) }
// 编辑运单
export const put_order = p => { return instance.put('order/', p) }
// 展示收货地
export const address = p => { return instance.get('showaddress/', p) }
// 查询路线分析
export const inquire = p => { return instance.post('showaddress/', p) }
// 总览
export const pandect = p => { return instance.get('pandect/', p) }
// 获取订单详情
export const orderdetail = p => { return instance.get('orderdetail/', p) }